
package com.hsyt.pfc.support.util;

/**
 * 版本比较工具
 *
 * @author wangze@hsyuntai.com
 * @version $Id: VersionUtil.java, v 0.1 2017年6月8日 上午9:13:37 yubo Exp $
 */
public class VersionUtil {
    /**
     * 版本号规则为x.x.x，如2.2.0，不符合规则，则返回false
     * 若现版本与需要比较的版本对象相同或比需要比较的版本对象版本高，则返回true
     * 若现版本比需要比较的版本对象版本低，则返回false
     * 若nowaday,compareObj有一个为空或空字符串，则返回false
     * 例：2.2.11比2.2.5版本高，2.11.1比2.4.2版本高
     *
     * @param nowaday    现版本
     * @param compareObj 需要比较的版本对象
     * @return
     */
    public static boolean compareVersion(String nowaday, String compareObj) {
        if (StringUtil.isBlank(nowaday) || StringUtil.isBlank(compareObj)) {
            return false;
        }
        try {
            if (nowaday.equals(compareObj)) {
                return true;
            }
            String[] str1 = nowaday.split("\\.");
            String[] str2 = compareObj.split("\\.");
            if (Integer.parseInt(str1[0]) > Integer.parseInt(str2[0])) {
                return true;
            }
            if (Integer.parseInt(str1[0]) < Integer.parseInt(str2[0])) {
                return false;
            }
            if (Integer.parseInt(str1[1]) > Integer.parseInt(str2[1])) {
                return true;
            }
            if (Integer.parseInt(str1[1]) < Integer.parseInt(str2[1])) {
                return false;
            }
            if (Integer.parseInt(str1[2]) > Integer.parseInt(str2[2])) {
                return true;
            }
            if (Integer.parseInt(str1[2]) < Integer.parseInt(str2[2])) {
                return false;
            }
            return false;
        } catch (Exception e) {
            return false;
        }
    }

}
